﻿#pragma once

#include <glm/glm.hpp>
#include <vector>
namespace Kriko
{
    struct PrimitiveData
    {
        std::vector<glm::vec4> vertices;
        std::vector<glm::vec2> uvs;
        std::vector<glm::vec3> normals;
        std::vector<glm::vec3> tangents;

        std::vector<int> indices;
    };
    class PrimitiveGenerator
    {
    public:
        PrimitiveData static CreateRect(float width, float heigh, size_t numSubdivisions);

    private:
        static void Subdivide(PrimitiveData& data);
        static void MidPoint();
    };
}
